export type VmsPageTableColumn = {
    prop?: string
    label: string
    type?: string
    slot?: string,
    columnKey?: string
    width?: string | number
    align?: string,
    filter?: VmsPageTableColumnFilter,
    sort?: VmsPageTableColumnSort,
    linkClick?: Function,
    showOverflowTooltip?: boolean
}

export enum VmsPageTableColumnFilterType {
    STATIC = 'static',
    DICTIOANRY = "dictionary",
    FUNCTION = "function"
}

/**
 * 筛选
 */
export type VmsPageTableColumnFilter = {
    type: string//static =>静态数据 dictionary数据字典数据 function自己定义方法获取数据
    filters?: Array<any>//如果为静态数据 则用这个
    filterPlacement?: string//出现位置
    filterMultiple?: boolean//是否多选
    filteredValue?: Array<any>//默认选中属性
    codeItemId?: string//在type为dictionary时使用
    loadData?: Function//在type为function时自己获取方法
    textKey?: string,//在type为dictionary 显示文本的key
    valueKey?: string//在type为dictionary 选择值的key
}

/**
 * 排序
 */
export type VmsPageTableColumnSort = {
    sortable: boolean | string //排序方式
    customOrderby?: string //自定义排序
}

/**
 * 排序类型 对应后台
 */
export type SortInfoType = {
    property: string | null
    direction: string | null
}

/**
 * 排序类型 对应后台
 */
export type SortChangeType = {
    column: any,
    prop: string,
    order: string
}

/**
 * 声明类型 方便页面更轻松的调用接口
 */
export type PageTableExpose = {
    loadTable: Function
    reloadTable: Function
    expData: Function
    getSelectionData: Function
    getSelectionPkList: Function,
    clearSelection: Function
    clearSort: Function
    clearFilter: Function
}